package com.example.support.wechat.boot;

import org.springframework.stereotype.Component;

import java.util.Map;
@Component
@org.springframework.boot.context.properties.ConfigurationProperties(prefix = "alipay")
public class AliPayProperties {

    private Map<String, AliPayProperties.Alipay> mappings;

    public AliPayProperties() {
    }

    public Map<String, AliPayProperties.Alipay> getMappings() {
        return mappings;
    }

    public void setMappings(Map<String, AliPayProperties.Alipay> mappings) {
        this.mappings = mappings;
    }

    public static class Alipay {

        private AliPayProperties.Alipay.Mp mp;
        private AliPayProperties.Alipay.Pay pay;
        private AliPayProperties.Alipay.Trade trade;
        private AliPayProperties.Alipay.Other other;

        public Alipay() {
        }

        public AliPayProperties.Alipay.Mp getMp() {
            return mp;
        }

        public void setMp(AliPayProperties.Alipay.Mp mp) {
            this.mp = mp;
        }

        public AliPayProperties.Alipay.Pay getPay() {
            return pay;
        }

        public void setPay(AliPayProperties.Alipay.Pay pay) {
            this.pay = pay;
        }

        public AliPayProperties.Alipay.Trade getTrade() {
            return trade;
        }

        public void setTrade(AliPayProperties.Alipay.Trade trade) {
            this.trade = trade;
        }

        public Other getOther() {
            return other;
        }

        public void setOther(Other other) {
            this.other = other;
        }

        public static class Mp {

            private String appId;

            public Mp() {
            }

            public String getAppId() {
                return appId;
            }

            public void setAppId(String appId) {
                this.appId = appId;
            }
        }

        public static class Pay {

            private String publicKey;
            private String privateKey;
            private String gatewayUrl;

            public Pay() {
            }

            public String getPublicKey() {
                return publicKey;
            }

            public void setPublicKey(String publicKey) {
                this.publicKey = publicKey;
            }

            public String getPrivateKey() {
                return privateKey;
            }

            public void setPrivateKey(String privateKey) {
                this.privateKey = privateKey;
            }

            public String getGatewayUrl() {
                return gatewayUrl;
            }

            public void setGatewayUrl(String gatewayUrl) {
                this.gatewayUrl = gatewayUrl;
            }
        }

        public static class Trade {

            private String notifyUrl;
            private String refundNotifyUrl;

            public Trade() {
            }

            public String getNotifyUrl() {
                return notifyUrl;
            }

            public void setNotifyUrl(String notifyUrl) {
                this.notifyUrl = notifyUrl;
            }

            public String getRefundNotifyUrl() {
                return refundNotifyUrl;
            }

            public void setRefundNotifyUrl(String refundNotifyUrl) {
                this.refundNotifyUrl = refundNotifyUrl;
            }

        }

        public static class Other {

            private String signType;
            private String charset;
            private String logPath;

            public Other() {
            }

            public String getSignType() {
                return signType;
            }

            public void setSignType(String signType) {
                this.signType = signType;
            }

            public String getCharset() {
                return charset;
            }

            public void setCharset(String charset) {
                this.charset = charset;
            }

            public String getLogPath() {
                return logPath;
            }

            public void setLogPath(String logPath) {
                this.logPath = logPath;
            }
        }

    }

}
